* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-size: 14pt;

    transition: all 0.1s ease-out;
}

html {
    background: white;
    color: black;
}

html, body, .container {
    width: 100%;
    height: 100%;
}

.container {
    display: flex;
    align-items: center;
    justify-content: center;
}

.container.all {
    background: #F8F8F8;
}

.form {
    max-width: 18rem;
    padding: 1rem;
    margin: 0.3rem;
}

.login-box {
    border: 0.1rem solid #DDD;
    border-radius: 0.2rem;
    background: #EEE;
}

@media(max-width: 30rem) {
    .container.all {
        background: #EEE;
    }

    .form {
        max-width: 30rem;
    }

    .login-box {
        border: none;
    }
}

.overlaid {
    position: relative;
}
.overlaid > .overlay {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;

    opacity: 100;
}
.overlay.hidden {
    visibility: hidden;
    opacity: 0;
}

.rotation {
    animation: rotation 1s linear infinite;
}
@keyframes rotation {
    from { transform: rotate(  0deg); }
    to   { transform: rotate(360deg); }
}
.spinner {
    border-radius: 50%;
    border: 0.6rem solid #BBB;
    width: 6rem;
    height: 6rem;
    animation: ocd-death 1.2s linear infinite;
}
@keyframes ocd-death {
    70% {
        border-top-width: 0.6rem;
        border-top-color: #BBB;
    }
    0%, 30%, 40%, 100% {
        border-top-width: 1rem;
        border-top-color: #5BBAD5;
    }

    10%, 80% {
        border-right-width: 0.6rem;
        border-right-color: #BBB;
    }
    40%, 50% {
        border-right-width: 1rem;
        border-right-color: #5BBAD5;
    }

    20%, 90% {
        border-bottom-width: 0.6rem;
        border-bottom-color: #BBB;
    }
    50%, 60% {
        border-bottom-width: 1rem;
        border-bottom-color: #5BBAD5;
    }

    30% {
        border-left-width: 0.6rem;
        border-left-color: #BBB;
    }
    60%, 70% {
        border-left-width: 1rem;
        border-left-color: #5BBAD5;
    }
}

.title {
    width: 100%;
    font-size: 1.2rem;
    text-align: center;
    margin-bottom: 1rem;
}

.input {
    width: 100%;
    line-height: 1.5rem;
    padding: 0.5rem;

    outline: none;
    background: #FFF;
    color: #000;
    border: 0.1rem solid #AAA;
}

.input:focus {
    padding-left: 1rem;
}

.error {
    width: 100%;
    height: 0;
    color: red;
    text-align: center;
}
.error.show {
    margin-top: 0.3rem;
    height: 1.2rem;
}

.button {
    width: 100%;
    line-height: 1.5rem;
    padding: 0.5rem;
    margin-top: 0.5rem;

    outline: none;
    background: #DDD;
    color: #000;
    border: 0.1rem solid #AAA;
    border-radius: 0.2rem;
}

.button:focus,
.button:hover {
    background: #E0E0E0;
    color: #444;
    border-color: #BBB;
}

.button:active {
    background: #CCC;
}

.group > *:first-child {
    border-top-left-radius: 0.2rem;
    border-top-right-radius: 0.2rem;
}
.group > *:last-child {
    border-bottom-left-radius: 0.2rem;
    border-bottom-right-radius: 0.2rem;
}
.group > *:not(:last-child) {
    border-bottom: none;
}
.group {
    margin-bottom: 0.5rem;
}

